<Project>
  <!-- Accept override paths for live artifacts. -->
  <PropertyGroup>
    <CoreCLRArtifactsPath Condition="'$(CoreCLROverridePath)' != ''">$([MSBuild]::NormalizeDirectory('$(CoreCLROverridePath)'))</CoreCLRArtifactsPath>
    <MonoArtifactsPath Condition="'$(MonoOverridePath)' != ''">$([MSBuild]::NormalizeDirectory('$(MonoOverridePath)'))</MonoArtifactsPath>
    <LibrariesArtifactsPath Condition="'$(LibrariesOverridePath)' != ''">$([MSBuild]::NormalizeDirectory('$(LibrariesOverridePath)'))</LibrariesArtifactsPath>
    <LibrariesAllConfigurationsArtifactsPath Condition="'$(LibrariesAllConfigurationsOverridePath)' != ''">$([MSBuild]::NormalizeDirectory('$(LibrariesAllConfigurationsOverridePath)'))</LibrariesAllConfigurationsArtifactsPath>

    <!-- Honor the RuntimeArtifactsPath property. -->
    <CoreCLRArtifactsPath Condition="'$(CoreCLRArtifactsPath)' == '' and '$(RuntimeArtifactsPath)' != ''">$([MSBuild]::NormalizeDirectory('$(RuntimeArtifactsPath)'))</CoreCLRArtifactsPath>
    <MonoArtifactsPath Condition="'$(MonoArtifactsPath)' == '' and '$(RuntimeArtifactsPath)' != ''">$([MSBuild]::NormalizeDirectory('$(RuntimeArtifactsPath)'))</MonoArtifactsPath>
    <LibrariesTargetOSConfigurationArchitecture Condition="'$(LibrariesTargetOSConfigurationArchitecture)' == ''">$(TargetOS)-$(LibrariesConfiguration)-$(TargetArchitecture)</LibrariesTargetOSConfigurationArchitecture>
  </PropertyGroup>

  <!-- Set up default live asset paths if no overrides provided. -->
  <PropertyGroup>
    <CoreCLRArtifactsPath Condition="'$(CoreCLRArtifactsPath)' == ''">$([MSBuild]::NormalizeDirectory('$(RepoRoot)', 'artifacts', 'bin', 'coreclr', '$(TargetOS).$(TargetArchitecture).$(CoreCLRConfiguration)'))</CoreCLRArtifactsPath>
    <MonoArtifactsPath Condition="'$(MonoArtifactsPath)' == ''">$([MSBuild]::NormalizeDirectory('$(RepoRoot)', 'artifacts', 'bin', 'mono', '$(TargetOS).$(TargetArchitecture).$(MonoConfiguration)'))</MonoArtifactsPath>
    <LibrariesArtifactsPath Condition="'$(LibrariesArtifactsPath)' == ''">$([MSBuild]::NormalizeDirectory('$(RepoRoot)', 'artifacts'))</LibrariesArtifactsPath>
    <LibrariesAllConfigurationsArtifactsPath Condition="'$(LibrariesAllConfigurationsArtifactsPath)' == ''">$([MSBuild]::NormalizeDirectory('$(RepoRoot)', 'artifacts'))</LibrariesAllConfigurationsArtifactsPath>
  </PropertyGroup>

  <!-- Set up artifact subpaths. -->
  <PropertyGroup>
    <CoreCLRSharedFrameworkDir>$([MSBuild]::NormalizeDirectory('$(CoreCLRArtifactsPath)', 'sharedFramework'))</CoreCLRSharedFrameworkDir>
    <CoreCLRILCompilerDir>$([MSBuild]::NormalizeDirectory('$(CoreCLRArtifactsPath)', 'ilc-published'))</CoreCLRILCompilerDir>
    <CoreCLRCrossILCompilerDir Condition="'$(CrossBuild)' == 'true' or '$(BuildArchitecture)' != '$(TargetArchitecture)' or '$(HostOS)' != '$(TargetOS)' or '$(EnableNativeSanitizers)' != ''">$([MSBuild]::NormalizeDirectory('$(CoreCLRArtifactsPath)', '$(BuildArchitecture)', 'ilc'))</CoreCLRCrossILCompilerDir>
    <CoreCLRAotSdkDir>$([MSBuild]::NormalizeDirectory('$(CoreCLRArtifactsPath)', 'aotsdk'))</CoreCLRAotSdkDir>
    <CoreCLRBuildIntegrationDir>$([MSBuild]::NormalizeDirectory('$(CoreCLRArtifactsPath)', 'build'))</CoreCLRBuildIntegrationDir>

    <Crossgen2Dir>$([MSBuild]::NormalizeDirectory('$(CoreCLRArtifactsPath)', '$(BuildArchitecture)', 'crossgen2'))</Crossgen2Dir>

    <ToolsILLinkDir>$([MSBuild]::NormalizeDirectory('$(ArtifactsBinDir)', 'ILLink.Tasks', '$(ToolsConfiguration)'))</ToolsILLinkDir>

    <MonoAotCrossDir>$([MSBuild]::NormalizeDirectory('$(MonoArtifactsPath)', 'cross', $(TargetOS)-$(TargetArchitecture.ToLowerInvariant())))</MonoAotCrossDir>
    <GrpcServerDockerImageDir>$([MSBuild]::NormalizeDirectory('$(LibrariesArtifactsPath)', 'obj', 'grpcserver', 'docker'))</GrpcServerDockerImageDir>

    <LibrariesPackagesDir>$([MSBuild]::NormalizeDirectory('$(LibrariesArtifactsPath)', 'packages', '$(LibrariesConfiguration)'))</LibrariesPackagesDir>
    <LibrariesShippingPackagesDir>$([MSBuild]::NormalizeDirectory('$(LibrariesPackagesDir)', 'Shipping'))</LibrariesShippingPackagesDir>
    <LibrariesNonShippingPackagesDir>$([MSBuild]::NormalizeDirectory('$(LibrariesPackagesDir)', 'NonShipping'))</LibrariesNonShippingPackagesDir>

    <LibrariesAllConfigPackagesDir>$([MSBuild]::NormalizeDirectory('$(LibrariesAllConfigurationsArtifactsPath)', 'packages', '$(LibrariesConfiguration)'))</LibrariesAllConfigPackagesDir>
    <LibrariesAllConfigShippingPackagesDir>$([MSBuild]::NormalizeDirectory('$(LibrariesAllConfigPackagesDir)', 'Shipping'))</LibrariesAllConfigShippingPackagesDir>
    <LibrariesAllConfigNonShippingPackagesDir>$([MSBuild]::NormalizeDirectory('$(LibrariesAllConfigPackagesDir)', 'NonShipping'))</LibrariesAllConfigNonShippingPackagesDir>

    <LibrariesSharedFrameworkRefArtifactsPath Condition="'$(LibrariesSharedFrameworkRefArtifactsPath)' == ''">$(MicrosoftNetCoreAppRefPackRefDir)</LibrariesSharedFrameworkRefArtifactsPath>
    <LibrariesAllRefArtifactsPath Condition="'$(LibrariesAllRefArtifactsPath)' == ''">$([MSBuild]::NormalizeDirectory('$(LibrariesArtifactsPath)', 'bin', 'ref', '$(NetCoreAppCurrent)'))</LibrariesAllRefArtifactsPath>
    <LibrariesSharedFrameworkBinArtifactsPath Condition="'$(LibrariesSharedFrameworkBinArtifactsPath)' == ''">$(MicrosoftNetCoreAppRuntimePackRidLibTfmDir)</LibrariesSharedFrameworkBinArtifactsPath>
    <LibrariesAllBinArtifactsPath Condition="'$(LibrariesAllBinArtifactsPath)' == ''">$([MSBuild]::NormalizeDirectory('$(LibrariesArtifactsPath)', 'bin', 'runtime', '$(NetCoreAppCurrent)-$(LibrariesTargetOSConfigurationArchitecture)'))</LibrariesAllBinArtifactsPath>
    <LibrariesNativeArtifactsPath Condition="'$(LibrariesNativeArtifactsPath)' == ''">$([MSBuild]::NormalizeDirectory('$(LibrariesArtifactsPath)', 'bin', 'native', '$(NetCoreAppCurrent)-$(LibrariesTargetOSConfigurationArchitecture)'))</LibrariesNativeArtifactsPath>

    <CoreCLRCrossTargetComponentDirName Condition="'$(TargetArchitecture)' == 'arm64' and '$(BuildArchitecture)' != 'arm64'">x64</CoreCLRCrossTargetComponentDirName>
    <CoreCLRCrossTargetComponentDirName Condition="'$(TargetArchitecture)' == 'arm' and '$(BuildArchitecture)' != 'arm' and '$(TargetsWindows)' == 'true'">x86</CoreCLRCrossTargetComponentDirName>
    <CoreCLRCrossTargetComponentDirName Condition="'$(TargetArchitecture)' == 'arm' and '$(BuildArchitecture)' != 'arm' and '$(TargetsLinux)' == 'true'">x64</CoreCLRCrossTargetComponentDirName>
    <CoreCLRCrossTargetComponentDirName Condition="'$(TargetArchitecture)' == 'armel' and '$(BuildArchitecture)' != 'armel' and '$(TargetsLinux)' == 'true'">x64</CoreCLRCrossTargetComponentDirName>

    <AppHostSourcePath Condition="'$(UseLocalAppHostPack)' == 'true'">$([MSBuild]::NormalizePath('$(DotNetHostBinDir)', 'apphost$(ExeSuffix)'))</AppHostSourcePath>
    <SingleFileHostSourcePath>$([MSBuild]::NormalizePath('$(CoreCLRArtifactsPath)', 'corehost', 'singlefilehost$(ExeSuffix)'))</SingleFileHostSourcePath>
  </PropertyGroup>

  <Target Name="ResolveRuntimeFilesFromLocalBuild">
    <Error Condition="!Exists('$(CoreCLRArtifactsPath)') and '$(RuntimeFlavor)' == 'CoreCLR'"
           Text="The CoreCLR artifacts path does not exist '$(CoreCLRArtifactsPath)'. The 'clr' subset must be built before building this project. Configuration: '$(CoreCLRConfiguration)'. To use a different configuration, specify the 'RuntimeConfiguration' property." />
    <Error Condition="!Exists('$(MonoArtifactsPath)') and '$(RuntimeFlavor)' == 'Mono'"
           Text="The Mono artifacts path does not exist '$(MonoArtifactsPath)'. The 'mono' subset must be built before building this project. Configuration: '$(MonoConfiguration)'. To use a different configuration, specify the 'RuntimeConfiguration' property." />

    <PropertyGroup Condition="'$(RuntimeFlavor)' == 'CoreCLR'">
      <CoreCLRArtifactsPath>$([MSBuild]::NormalizeDirectory('$(CoreCLRArtifactsPath)'))</CoreCLRArtifactsPath>
      <CoreCLRArtifactsPdbDir>$([MSBuild]::NormalizeDirectory('$(CoreCLRArtifactsPath)','PDB'))</CoreCLRArtifactsPdbDir>
      <!--
        Even though CoreCLRSharedFrameworkDir is statically initialized, set it again in case the
        value is different after CoreCLRArtifactsPath is normalized.
      -->
      <CoreCLRSharedFrameworkDir>$([MSBuild]::NormalizeDirectory('$(CoreCLRArtifactsPath)','sharedFramework'))</CoreCLRSharedFrameworkDir>
      <CoreCLRSharedFrameworkPdbDir>$([MSBuild]::NormalizeDirectory('$(CoreCLRSharedFrameworkDir)','PDB'))</CoreCLRSharedFrameworkPdbDir>
      <CoreCLRCrossTargetComponentDir
        Condition="'$(CoreCLRCrossTargetComponentDirName)' != ''">$([MSBuild]::NormalizeDirectory('$(CoreCLRArtifactsPath)','$(CoreCLRCrossTargetComponentDirName)','sharedFramework'))</CoreCLRCrossTargetComponentDir>
    </PropertyGroup>
    <PropertyGroup Condition="'$(RuntimeFlavor)' == 'Mono'">
      <MonoArtifactsPath>$([MSBuild]::NormalizeDirectory('$(MonoArtifactsPath)'))</MonoArtifactsPath>
    </PropertyGroup>

    <ItemGroup Condition="'$(BuildNativeAOTRuntimePack)' == 'true'">
      <_nativeAotRuntimeFiles Include="$(CoreCLRAotSdkDir)*" />
      <RuntimeFiles Include="@(_nativeAotRuntimeFiles)" Condition="'%(Extension)' != '.xml'">
        <IsNative>true</IsNative>
      </RuntimeFiles>
    </ItemGroup>

    <ItemGroup Condition="'$(RuntimeFlavor)' == 'CoreCLR' and '$(BuildNativeAOTRuntimePack)' != 'true'">
      <RuntimeFiles Include="$(CoreCLRSharedFrameworkDir)*.*" />
      <RuntimeFiles Condition="'$(PgoInstrument)' == 'true'" Include="$(CoreCLRSharedFrameworkDir)PGD/*" />
      <CoreCLRCrossTargetFiles Condition="'$(CoreCLRCrossTargetComponentDir)' != ''" Include="$(CoreCLRCrossTargetComponentDir)*.*" IsNative="true" />
      <RuntimeFiles>
        <IsNative>true</IsNative>
      </RuntimeFiles>
      <_systemPrivateCoreLib Include="$(CoreCLRArtifactsPath)System.Private.CoreLib.dll"
                             Condition="Exists('$(CoreCLRArtifactsPath)System.Private.CoreLib.dll')" />
      <_systemPrivateCoreLib Include="$(CoreCLRArtifactsPath)IL/System.Private.CoreLib.dll"
                             Condition="Exists('$(CoreCLRArtifactsPath)IL/System.Private.CoreLib.dll') and '@(_systemPrivateCoreLib)' == ''" />
      <RuntimeFiles Include="@(_systemPrivateCoreLib)" />
      <RuntimeFiles
        Include="
          $(CoreCLRSharedFrameworkPdbDir)*.pdb;
          $(CoreCLRSharedFrameworkPdbDir)*.dbg;
          $(CoreCLRSharedFrameworkPdbDir)*.dwarf" IsNative="true" />
      <RuntimeFiles Condition="Exists('$(CoreCLRArtifactsPdbDir)System.Private.CoreLib.pdb')"
        Include="$(CoreCLRArtifactsPdbDir)System.Private.CoreLib.pdb" />
      <RuntimeFiles Condition="Exists('$(CoreCLRArtifactsPdbDir)System.Private.CoreLib.ni.pdb')"
        Include="$(CoreCLRArtifactsPdbDir)System.Private.CoreLib.ni.pdb" />

      <CoreCLRCrossTargetFiles Condition="'$(CoreCLRCrossTargetComponentDir)' != ''"
        Include="
          $(CoreCLRSharedFrameworkPdbDir)*.pdb;
          $(CoreCLRSharedFrameworkPdbDir)*.dbg;
          $(CoreCLRSharedFrameworkPdbDir)*.dwarf" />

      <CoreCLRCrossTargetFiles>
        <TargetPath>runtime/$(CoreCLRCrossTargetComponentDirName)_$(TargetArchitecture)/native</TargetPath>
        <IsNative>true</IsNative>
      </CoreCLRCrossTargetFiles>
    </ItemGroup>
    <ItemGroup Condition="'$(RuntimeFlavor)' == 'Mono'">
      <RuntimeFiles Include="$(MonoArtifactsPath)\*.*" />
      <RuntimeFiles>
        <IsNative>true</IsNative>
      </RuntimeFiles>

      <MonoFrameworkReleaseFiles Condition="'$(TargetsMacCatalyst)' == 'true' or '$(TargetsiOS)' == 'true' or '$(TargetstvOS)' == 'true'" Include="$(MonoArtifactsPath)\Mono.release.framework\*.*" />
      <MonoFrameworkDebugFiles Condition="'$(TargetsMacCatalyst)' == 'true' or '$(TargetsiOS)' == 'true' or '$(TargetstvOS)' == 'true'" Include="$(MonoArtifactsPath)\Mono.debug.framework\*.*" />
      <MonoIncludeFiles Include="$(MonoArtifactsPath)\include\**\*.*" />
      <MonoBuildFiles Include="$(MonoArtifactsPath)\build\**\*.*" />
    </ItemGroup>

    <Error Condition="'@(RuntimeFiles)' == ''" Text="The '$(RuntimeFlavor)' subset must be built before building this project." />
  </Target>

  <Target Name="EnsureLocalArtifactsExist">
    <Error Condition="!Exists('$(LibrariesSharedFrameworkRefArtifactsPath)')"
           Text="The 'libs' subset must be built before building this project. Missing artifacts: $(LibrariesSharedFrameworkRefArtifactsPath). Configuration: '$(LibrariesConfiguration)'. To use a different configuration, specify the 'LibrariesConfiguration' property." />
    <Error Condition="'$(IncludeOOBLibraries)' == 'true' and !Exists('$(LibrariesAllRefArtifactsPath)')"
           Text="The 'libs' subset must be built before building this project. Missing artifacts: $(LibrariesAllRefArtifactsPath). Configuration: '$(LibrariesConfiguration)'. To use a different configuration, specify the 'LibrariesConfiguration' property." />
  </Target>

  <!--
    Ensure artifacts exist for the more advanced paths. If the configuration is '*', don't emit
    these errors: it isn't a local dev scenario.
  -->
  <Target Name="EnsureLocalOSGroupConfigurationArchitectureSpecificArtifactsExist"
          Condition="'$(LibrariesTargetOSConfigurationArchitecture)' != '*'">
    <Error Condition="!Exists('$(LibrariesSharedFrameworkBinArtifactsPath)')"
           Text="The 'libs' subset must be built before building this project. Missing artifacts: $(LibrariesSharedFrameworkBinArtifactsPath). Configuration: '$(LibrariesConfiguration)'. To use a different configuration, specify the 'LibrariesConfiguration' property." />
    <Error Condition="'$(IncludeOOBLibraries)' == 'true' and !Exists('$(LibrariesAllBinArtifactsPath)')"
           Text="The 'libs' subset must be built before building this project. Missing artifacts: $(LibrariesAllBinArtifactsPath). Configuration: '$(LibrariesConfiguration)'. To use a different configuration, specify the 'LibrariesConfiguration' property." />
    <Error Condition="!Exists('$(LibrariesNativeArtifactsPath)')"
           Text="The 'libs' subset must be built before building this project. Missing artifacts: $(LibrariesNativeArtifactsPath). Configuration: '$(LibrariesConfiguration)'. To use a different configuration, specify the 'LibrariesConfiguration' property." />
  </Target>

  <Target Name="ResolveLibrariesRefAssembliesFromLocalBuild"
          DependsOnTargets="EnsureLocalArtifactsExist">
    <ItemGroup>
      <LibrariesRefAssemblies Condition="'$(IncludeOOBLibraries)' != 'true'" Include="$(LibrariesSharedFrameworkRefArtifactsPath)*.dll;$(LibrariesSharedFrameworkRefArtifactsPath)*.pdb" />
      <LibrariesRefAssemblies Condition="'$(IncludeOOBLibraries)' == 'true'" Include="$(LibrariesAllRefArtifactsPath)*.dll;$(LibrariesAllRefArtifactsPath)*.pdb" />
    </ItemGroup>
    <Error Condition="'@(LibrariesRefAssemblies)' == ''" Text="The 'libs' subset must be built before building this project." />
  </Target>

  <Target Name="ResolveLibrariesRuntimeFilesFromLocalBuild"
          DependsOnTargets="
            EnsureLocalArtifactsExist;
            EnsureLocalOSGroupConfigurationArchitectureSpecificArtifactsExist">
    <ItemGroup>
      <LibrariesRuntimeFiles Condition="'$(IncludeOOBLibraries)' != 'true'" Include="
        $(LibrariesSharedFrameworkBinArtifactsPath)*.dll;
        $(LibrariesSharedFrameworkBinArtifactsPath)*.pdb"
        IsNative="" />
      <LibrariesRuntimeFiles Condition="'$(IncludeOOBLibraries)' == 'true'" Include="
        $(LibrariesAllBinArtifactsPath)*.dll;
        $(LibrariesAllBinArtifactsPath)*.pdb"
        IsNative="" />
      <ExcludeNativeLibrariesRuntimeFiles Condition="'$(IncludeOOBLibraries)' != 'true'"
                                          Include="$(LibrariesNativeArtifactsPath)libSystem.IO.Ports.Native.*" />

      <ExcludeNativeLibrariesRuntimeFiles Condition="'$(RuntimeFlavor)' != 'Mono'"
                                          Include="$(LibrariesNativeArtifactsPath)System.Globalization.Native.dll;$(LibrariesNativeArtifactsPath)System.Globalization.Native.so;$(LibrariesNativeArtifactsPath)System.Globalization.Native.dylib" />
      <LibrariesRuntimeFiles Include="
        $(LibrariesNativeArtifactsPath)*.dat;
        $(LibrariesNativeArtifactsPath)*.dll;
        $(LibrariesNativeArtifactsPath)*.dylib;
        $(LibrariesNativeArtifactsPath)*.a;
        $(LibrariesNativeArtifactsPath)*.so;
        $(LibrariesNativeArtifactsPath)*.dbg;
        $(LibrariesNativeArtifactsPath)*.dwarf;
        $(LibrariesNativeArtifactsPath)*.pdb"
        IsNative="true"
        Exclude="@(ExcludeNativeLibrariesRuntimeFiles)" />
      <LibrariesRuntimeFiles Condition="'$(TargetOS)' == 'android'"
                             Include="
        $(LibrariesNativeArtifactsPath)*.dex;
        $(LibrariesNativeArtifactsPath)*.jar;"
        IsNative="true" />
      <LibrariesRuntimeFiles Condition="'$(TargetOS)' == 'browser'"
                             Include="
        $(LibrariesNativeArtifactsPath)dotnet.js;
        $(LibrariesNativeArtifactsPath)dotnet.js.map;
        $(LibrariesNativeArtifactsPath)dotnet.native.js;
        $(LibrariesNativeArtifactsPath)dotnet.runtime.js;
        $(LibrariesNativeArtifactsPath)dotnet.runtime.js.map;
        $(LibrariesNativeArtifactsPath)dotnet.d.ts;
        $(LibrariesNativeArtifactsPath)package.json;
        $(LibrariesNativeArtifactsPath)dotnet.native.wasm;
        $(LibrariesNativeArtifactsPath)dotnet.native.js.symbols;
        $(LibrariesNativeArtifactsPath)*.dat;
        $(LibrariesNativeArtifactsPath)segmentation-rules.json;"
        IsNative="true" />
      <!-- for threaded wasm -->
      <LibrariesRuntimeFiles Condition="'$(TargetOS)' == 'browser' and Exists('$(LibrariesNativeArtifactsPath)dotnet.native.worker.js')"
                             Include="
        $(LibrariesNativeArtifactsPath)dotnet.native.worker.js"
        IsNative="true" />
      <LibrariesRuntimeFiles Condition="'$(TargetOS)' == 'browser'"
                             Include="
        $(LibrariesNativeArtifactsPath)src\*.c;
        $(LibrariesNativeArtifactsPath)src\*.js;
        $(LibrariesNativeArtifactsPath)src\emcc-default.rsp;
        $(LibrariesNativeArtifactsPath)src\emcc-link.rsp;
        $(LibrariesNativeArtifactsPath)src\wasm-props.json;"
        NativeSubDirectory="src"
        IsNative="true" />
      <LibrariesRuntimeFiles Condition="'$(TargetOS)' == 'browser'"
                             Include="$(LibrariesNativeArtifactsPath)src\es6\*.js"
                             NativeSubDirectory="src\es6"
                             IsNative="true" />

      <LibrariesRuntimeFiles Condition="'$(TargetOS)' == 'browser'"
                             Include="
        $(LibrariesNativeArtifactsPath)include\wasm\*.h;"
        NativeSubDirectory="include\wasm"
        IsNative="true" />
    </ItemGroup>

    <ItemGroup Label="Wasi" Condition="'$(TargetOS)' == 'wasi'">
      <LibrariesRuntimeFiles
                             Include="
        $(LibrariesNativeArtifactsPath)dotnet.wasm;
        $(LibrariesNativeArtifactsPath)*.dat;"
        IsNative="true" />

      <LibrariesRuntimeFiles Include="
        $(LibrariesNativeArtifactsPath)src\wasi-default.rsp;
        $(LibrariesNativeArtifactsPath)src\wasi-link.rsp;
        $(LibrariesNativeArtifactsPath)src\wasm-props.json;
        $(LibrariesNativeArtifactsPath)src\*.c"
        NativeSubDirectory="src"
        IsNative="true" />

      <LibrariesRuntimeFiles Include="
        $(LibrariesNativeArtifactsPath)include\wasm\*.h;"
        NativeSubDirectory="include\wasm"
        IsNative="true" />
    </ItemGroup>

    <Error Condition="'@(LibrariesRuntimeFiles)' == ''" Text="The 'libs' subset must be built before building this project." />
  </Target>

  <Target Name="ResolveLibrariesFromLocalBuild"
          DependsOnTargets="
            ResolveLibrariesRefAssembliesFromLocalBuild;
            ResolveLibrariesRuntimeFilesFromLocalBuild" />
</Project>
